<!--SIF Implementation Specification 2.2-6 (March 17, 2008)-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://www.sifinfo.org/infrastructure/2.x" xmlns:sif="http://www.sifinfo.org/infrastructure/2.x" elementFormDefault="qualified">
  <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="imports/xml/xml.xsd" />
  <xs:complexType name="TestAccommodationType">
    <xs:annotation>
      <xs:documentation>
								This object provides information about test accommodation(s) required for a particular student who is registered to
								take a particular state test or who is about to be assigned by a teacher to take a course-related test,
								is participating in one or more special program(s) and for whom this set of test accommodations is prescribed
								in one or more specific special program plan(s).
							</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="StudentPersonalRefId" minOccurs="0" nillable="true" type="sif:IdRefType">
        <xs:annotation>
          <xs:documentation>Reference to StudentPersonal object.  Typically a vendor is allowed to receive a StateProvinceId or a student's Name, but not both together.  The student must be identified by StudentPersonalRefId, or Name and LocalId, or StateProvinceId.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Name" minOccurs="0" nillable="true" type="sif:NameType">
        <xs:annotation>
          <xs:documentation>The student's name as presented in StudentPersonal object, Name element with a Type of 02 (Current Legal Name).  If Type 02 is not available, Type of 04 (Name of Record).  Sub-elements to be used: LastName, FirstName, MiddleName.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="LocalId" minOccurs="0" nillable="true" type="sif:LocalIdType">
        <xs:annotation>
          <xs:documentation>The locally assigned identifier for this student.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="StateProvinceId" minOccurs="0" nillable="true" type="sif:StateProvinceIdType">
        <xs:annotation>
          <xs:documentation>Reference to the state code identifying the student in the StudentPersonal object, as of the date of the response.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="StateDistrictId" minOccurs="0" nillable="true" type="sif:StateProvinceIdType">
        <xs:annotation>
          <xs:documentation>Reference to State code (StateProvinceId for LEAInfo) for the student's district of enrollment as of the date of the response (optional because school might be independent).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="LEAInfoRefId" minOccurs="0" nillable="true" type="sif:IdRefType">
        <xs:annotation>
          <xs:documentation>The RefId for the district to which the student's home school of enrollment belongs as of the date of the response (optional because school might be independent).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SchoolInfoRefId" minOccurs="0" type="sif:IdRefType">
        <xs:annotation>
          <xs:documentation>The RefId for the student's home school of enrollment as of the date of the response.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="StateSchoolId" minOccurs="0" nillable="true" type="sif:StateProvinceIdType">
        <xs:annotation>
          <xs:documentation>Reference to State code (StateProvinceId for SchoolInfo) for student's home school of enrollment as of the date of the response (optional because state may not require).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="GradeLevel" minOccurs="0" type="sif:GradeLevelType">
        <xs:annotation>
          <xs:documentation>Code for the current actual grade placement of the student as of the date of the response  from StudentSchoolEnrollment.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="AssessmentRegistrationRefId" minOccurs="0" nillable="true" type="sif:IdRefType">
        <xs:annotation>
          <xs:documentation>RefId for the student's registration / assignment to take a particular test (test name, subject area, level, grade level, type) at a particular time or within a particular timeframe.  An assessment may also be identified by omitting this element and specifying the whole set (TestAdministration, TestSubjectArea, TestGradeLevel, TestAdministrationDateRange or PlannedTestAdministrationDate, and TestType).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TestAdministration" minOccurs="0" nillable="true" type="xs:token">
        <xs:annotation>
          <xs:documentation>Abbreviated name of the test for which this set of accommodations is to be provided.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TestSubjectArea" minOccurs="0" nillable="true" type="xs:token">
        <xs:annotation>
          <xs:documentation>Subject area of the test.  Teachers may only supply this element, while a high-stakes test will supply the whole set (TestAdministration, TestSubjectArea, TestGradeLevel, TestAdministrationDateRange or PlannedTestAdministrationDate, and TestType).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TestGradeLevel" minOccurs="0" nillable="true" type="xs:token">
        <xs:annotation>
          <xs:documentation>Grade level of the test.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TestAdministrationDateRange" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>General date range of the test (e.g. "Spring 2005").  Date is identified by either TestAdministrationDateRange or PlannedTestAdministrationDate</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="PlannedTestAdministrationDate" minOccurs="0" nillable="true" type="xs:date">
        <xs:annotation>
          <xs:documentation>The date the test is planned to be administered.  Should contain the most current known date (Date is needed in order to identify accommodations to be sent—accommodations are date-dependent).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TestType" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Identifies whether the test the student is to take is a standard or alternate.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="S001">
              <xs:annotation>
                <xs:documentation>Standard</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="S002">
              <xs:annotation>
                <xs:documentation>Alternate</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="9999">
              <xs:annotation>
                <xs:documentation>Other</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="AuthorizedActual" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Indicator - Identifies whether accommodations in this object are authorized or were actually used.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="S001">
              <xs:annotation>
                <xs:documentation>Authorized</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="S002">
              <xs:annotation>
                <xs:documentation>Actual (actually used during test administration)</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="S999">
              <xs:annotation>
                <xs:documentation>Other</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="ActualTestAdministrationDate" minOccurs="0" nillable="true" type="xs:date">
        <xs:annotation>
          <xs:documentation>The date the test was actually administered.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="StudentProgramAccommodations" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="StudentProgramAccommodation" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="StudentParticipationRefId" minOccurs="0" nillable="true" type="sif:IdRefType">
                    <xs:annotation>
                      <xs:documentation>Reference to the instance of the StudentParticipation object in which the required test accommodation(s) are specified for the date of the test.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="StudentProgramType" minOccurs="0">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="Code" minOccurs="0" type="xs:token">
                          <xs:annotation>
                            <xs:documentation>The value specified in the referenced StudentParticipation object in ProgramType</xs:documentation>
                          </xs:annotation>
                        </xs:element>
                        <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="Accommodations" minOccurs="0">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="Accommodation" minOccurs="0" maxOccurs="unbounded">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element name="Code" minOccurs="0">
                                <xs:annotation>
                                  <xs:documentation>Identifies the specific accommodation.  At least one required if the repeating group is sent.</xs:documentation>
                                </xs:annotation>
                                <xs:simpleType>
                                  <xs:union>
                                    <xs:annotation>
                                      <xs:documentation>Identifies the specific accommodation.  At least one required if the repeating group is sent.</xs:documentation>
                                    </xs:annotation>
                                    <xs:simpleType>
                                      <xs:restriction base="sif:TestAccommodationTestMaterialType" />
                                    </xs:simpleType>
                                    <xs:annotation>
                                      <xs:documentation>Identifies the specific accommodation.  At least one required if the repeating group is sent.</xs:documentation>
                                    </xs:annotation>
                                    <xs:simpleType>
                                      <xs:restriction base="sif:TestAccommodationTestAdministrationType" />
                                    </xs:simpleType>
                                    <xs:annotation>
                                      <xs:documentation>Identifies the specific accommodation.  At least one required if the repeating group is sent.</xs:documentation>
                                    </xs:annotation>
                                    <xs:simpleType>
                                      <xs:restriction base="sif:TestAccommodationStudentEquipmentAndTechnologyType" />
                                    </xs:simpleType>
                                    <xs:annotation>
                                      <xs:documentation>Identifies the specific accommodation.  At least one required if the repeating group is sent.</xs:documentation>
                                    </xs:annotation>
                                    <xs:simpleType>
                                      <xs:restriction base="sif:TestAccommodationTestResponseType" />
                                    </xs:simpleType>
                                    <xs:annotation>
                                      <xs:documentation>Identifies the specific accommodation.  At least one required if the repeating group is sent.</xs:documentation>
                                    </xs:annotation>
                                    <xs:simpleType>
                                      <xs:restriction base="sif:TestAccommodationSchedulingType" />
                                    </xs:simpleType>
                                    <xs:annotation>
                                      <xs:documentation>Identifies the specific accommodation.  At least one required if the repeating group is sent.</xs:documentation>
                                    </xs:annotation>
                                    <xs:simpleType>
                                      <xs:restriction base="sif:TestAccommodationSettingType" />
                                    </xs:simpleType>
                                    <xs:annotation>
                                      <xs:documentation>Identifies the specific accommodation.  At least one required if the repeating group is sent.</xs:documentation>
                                    </xs:annotation>
                                    <xs:simpleType>
                                      <xs:restriction base="xs:token">
                                        <xs:enumeration value="9999">
                                          <xs:annotation>
                                            <xs:documentation>Other</xs:documentation>
                                          </xs:annotation>
                                        </xs:enumeration>
                                      </xs:restriction>
                                    </xs:simpleType>
                                  </xs:union>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
                              <xs:element name="AccommodationCategory" minOccurs="0" nillable="true">
                                <xs:complexType>
                                  <xs:sequence>
                                    <xs:element name="Code" minOccurs="0">
                                      <xs:simpleType>
                                        <xs:restriction base="xs:token">
                                          <xs:enumeration value="S001">
                                            <xs:annotation>
                                              <xs:documentation>Presentation</xs:documentation>
                                            </xs:annotation>
                                          </xs:enumeration>
                                          <xs:enumeration value="S002">
                                            <xs:annotation>
                                              <xs:documentation>Presentation equipment / technology</xs:documentation>
                                            </xs:annotation>
                                          </xs:enumeration>
                                          <xs:enumeration value="S003">
                                            <xs:annotation>
                                              <xs:documentation>Response</xs:documentation>
                                            </xs:annotation>
                                          </xs:enumeration>
                                          <xs:enumeration value="S004">
                                            <xs:annotation>
                                              <xs:documentation>Scheduling / timing</xs:documentation>
                                            </xs:annotation>
                                          </xs:enumeration>
                                          <xs:enumeration value="S005">
                                            <xs:annotation>
                                              <xs:documentation>Setting</xs:documentation>
                                            </xs:annotation>
                                          </xs:enumeration>
                                          <xs:enumeration value="S006">
                                            <xs:annotation>
                                              <xs:documentation>Test Response</xs:documentation>
                                            </xs:annotation>
                                          </xs:enumeration>
                                          <xs:enumeration value="S999">
                                            <xs:annotation>
                                              <xs:documentation>Other</xs:documentation>
                                            </xs:annotation>
                                          </xs:enumeration>
                                        </xs:restriction>
                                      </xs:simpleType>
                                    </xs:element>
                                    <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
                                  </xs:sequence>
                                </xs:complexType>
                              </xs:element>
                              <xs:element name="SpecialMaterials" minOccurs="0" type="xs:boolean">
                                <xs:annotation>
                                  <xs:documentation>Accommodation specified requires special materials. Required if the repeating group is sent.</xs:documentation>
                                </xs:annotation>
                              </xs:element>
                            </xs:sequence>
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_Metadata" minOccurs="0" nillable="true" type="sif:SIF_MetadataType" />
      <xs:element name="SIF_ExtendedElements" minOccurs="0" nillable="true" type="sif:SIF_ExtendedElementsType" />
    </xs:sequence>
    <xs:attribute name="RefId" use="required" type="sif:RefIdType">
      <xs:annotation>
        <xs:documentation>Unique ID for this set of test accommodations required for a particular student who is participating in a special program and for whom this set of test accommodation(s) is recommended / prescribed for this test administration (specific subject area and level) in a specific special programs plan.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="TestAccommodation" type="sif:TestAccommodationType" />

</xs:schema>